package com.zhangxu.microservice.system.dao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhangxu.microservice.system.dao.entity.RoleResourceDO;

import java.util.List;

/**
 * 角色资源权限关联DAO接口
 */
public interface RoleResourceDao extends IService<RoleResourceDO> {

    /**
     * 根据角色ID查询资源权限关联
     *
     * @param roleId 角色ID
     * @return 角色资源权限关联列表
     */
    List<RoleResourceDO> listByRoleIdAndAppId(Long roleId, Long appId);

    /**
     * 根据角色ID查询资源权限关联
     *
     * @param roleId 角色ID
     * @return 角色资源权限关联列表
     */
    List<RoleResourceDO> listByRoleId(Long roleId);

    /**
     * 根据资源编码查询角色权限关联
     *
     * @param resourceCode 资源编码
     * @return 角色资源权限关联列表
     */
    List<RoleResourceDO> listByResourceCode(String resourceCode);

    /**
     * 根据角色ID和资源编码查询权限关联
     *
     * @param roleId       角色ID
     * @param resourceCode 资源编码
     * @return 角色资源权限关联
     */
    RoleResourceDO getByRoleIdAndResourceCode(Long roleId, String resourceCode);

    /**
     * 根据角色ID删除所有资源权限关联
     *
     * @param roleId 角色ID
     */
    void deleteByRoleId(Long roleId);

    /**
     * 根据资源编码删除所有角色权限关联
     *
     * @param resourceCode 资源编码
     */
    void deleteByResourceCode(String resourceCode);
}